home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 09 Application Software / CB117.BIN (.txt) < prev    next >
Commodore BASIC  |  2019-04-13  |  21KB  |  669 lines

  1. 2 IFPEEK(828)=0THENPOKE828,1:LOAD"KILLCURSOR",8,1
  2. 4 SYS49152:GOTO100
  3. 8 GETAN$:IFAN$=""THEN8
  4. 9 RETURN
  5. 100 REM
  6. 110 REM "CHECKBOOK" BY ARNOLD SOLOF
  7. 120 REM         3/23/85
  8. 130 REM
  9. 200 REM
  10. 210 REM  ASSIGN VARIABLES
  11. 220 REM
  12. 230 DIM ME$(20),DA$(200),CH$(200),PA$(200),AM(200),T1$(200),A1(200),O$(99)
  13. 240 DIM T2$(200),A2(200),DS$(200),CA(31),CA$(31),M1$(200),MK$(200),TT(31)
  14. 250 DIM MO$(12),FM$(12),RC$(200),RA(200),NM$(12),SM$(200),MN$(12),XX$(12)
  15. 260 DEF FN R2 (X)=INT(X*100+.5)/100 :REM FUNCTION "R2" ROUNDS # TO 2 DEC PLACES
  16. 262 DEF FN CS(LN)=(40-LN)/2:DEF FN CP(LN)=(80-LN)/2:REM CENTER SCREEN/PRINTER
  17. 270 DATA ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,ELEVEN,TWELVE
  18. 271 DATA THIRTEEN,FOURTEEN,FIFTEEN,SIXTEEN,SEVENTEEN,EIGHTEEN,NINETEEN,TWENTY
  19. 272 DATA TWENTY-ONE,TWENTY-TWO,TWENTY-THREE,TWENTY-FOUR,TWENTY-FIVE,TWENTY-SIX
  20. 273 DATA TWENTY-SEVEN,TWENTY-EIGHT,TWENTY-NINE,THIRTY,THIRTY-ONE,THIRTY-TWO
  21. 274 DATA THIRTY-THREE,THIRTY-FOUR,THIRTY-FIVE,THIRTY-SIX,THIRTY-SEVEN
  22. 275 DATA THIRTY-EIGHT,THIRTY-NINE,FORTY,FORTY-ONE,FORTY-TWO,FORTY-THREE
  23. 276 DATA FORTY-FOUR,FORTY-FIVE,FORTY-SIX,FORTY-SEVEN,FORTY-EIGHT,FORTY-NINE
  24. 277 DATA FIFTY,FIFTY-ONE,FIFTY-TWO,FIFTY-THREE,FIFTY-FOUR,FIFTY-FIVE
  25. 278 DATA FIFTY-SIX,FIFTY-SEVEN,FIFTY-EIGHT,FIFTY-NINE,SIXTY,SIXTY-ONE
  26. 279 DATA SIXTY-TWO,SIXTY-THREE,SIXTY-FOUR,SIXTY-FIVE,SIXTY-SIX,SIXTY-SEVEN
  27. 280 DATA SIXTY-EIGHT,SIXTY-NINE,SEVENTY,SEVENTY-ONE,SEVENTY-TWO,SEVENTY-THREE
  28. 281 DATA SEVENTY-FOUR,SEVENTY-FIVE,SEVENTY-SIX,SEVENTY-SEVEN,SEVENTY-EIGHT
  29. 282 DATA SEVENTY-NINE,EIGHTY,EIGHTY-ONE,EIGHTY-TWO,EIGHTY-THREE,EIGHTY-FOUR
  30. 283 DATA EIGHTY-FIVE,EIGHTY-SIX,EIGHTY-SEVEN,EIGHTY-EIGHT,EIGHTY-NINE,NINETY
  31. 284 DATA NINETY-ONE,NINETY-TWO,NINETY-THREE,NINETY-FOUR,NINETY-FIVE
  32. 285 DATA NINETY-SIX,NINETY-SEVEN,NINETY-EIGHT,NINETY-NINE
  33. 286 FOR I=1TO99:READ O$(I):NEXT
  34. 290 DATAJANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER
  35. 300 DATA OCTOBER,NOVEMBER,DECEMBER
  36. 310 FORI=1TO12:READMO$(I):NEXT
  37. 390 D$="":R$=""
  38. 395 L$="----------------------------------------":L$=L$+L$
  39. 396 L1$=L$+"---------------"
  40. 400 FOR I=1TO6:README$(I):NEXT:D$=D$+ME$(3)+D$
  41. 410 DATA "[159]A[146]CCEPT E[146]DIT C[146]ANCEL[145][129]","[159]OPTION?[145][146]"
  42. 420 DATA "                                       [145]","PRINT CHECK?[146][145]"
  43. 430 DATA "ANY KEY[145]","[129]E,R,S,C,+,-,[255],\,%,B,D,N,?[146]  (_ = DONE)[145]"
  44. 470 CA$(0)="DEPOSIT":T$=CHR$(16):ES$=CHR$(27)+CHR$(27):P1$=ES$+CHR$(84)
  45. 472 P2$=ES$+CHR$(73):P3$=ES$+CHR$(67):P4$=ES$+CHR$(68):P5$=ES$+CHR$(11):NP$="1"
  46. 490 GOSUB6300:GOTO2000
  47. 500 REM
  48. 510 REM      DATA ENTRY SCREEN
  49. 520 REM
  50. 525 BA=FNR2(BA)
  51. 530 POKE53280,0:POKE53281,0:PRINT"[147]";TAB(7)"[158]CHECKBOOK --- ";D1$""
  52. 540 PRINTTAB(12)"[159]BALANCE =";BA"[146]"
  53. 550 PRINT"[129]DATE ----->"
  54. 560 PRINT "CHECK # -->"
  55. 570 PRINT "PAYEE ---->"
  56. 580 PRINT "AMOUNT --->"
  57. 590 PRINT "# DBMTS -->"
  58. 600 PRINT " #1 TYPE ->"
  59. 610 PRINT "    AMT -->"
  60. 620 PRINT " #2 TYPE ->"
  61. 630 PRINT "    AMT -->"
  62. 640 PRINT "MEMO ----->"
  63. 650 RETURN
  64. 700 :
  65. 701 REM   DISPLAY RECORD ON SCREEN
  66. 702 :
  67. 710 GOSUB 500:PRINT"REC#";X"[146]";TAB(38)MK$(X)
  68. 720 PRINT"";R$;DA$(X)
  69. 730 PRINT"";R$;CH$(X)
  70. 735 IFCH$(X)="*"THENPRINT"";R$;"[158]DEPOSIT[146]":GOTO745
  71. 740 PRINT"";R$;PA$(X)
  72. 745 PRINT"";R$;AM(X)
  73. 750 PRINT"";R$;DS$(X)
  74. 755 PRINT"";R$;T1$(X)
  75. 760 PRINT"";R$;A1(X)
  76. 765 PRINT"";R$;T2$(X)
  77. 767 PRINT"";R$;A2(X)
  78. 770 PRINT"";R$;M1$(X)
  79. 775 RETURN
  80. 800 REM
  81. 810 REM    DISPLAY DEFAULT VALUES
  82. 820 REM
  83. 830 PRINT"";R$;DA$;"";R$;"1";"";R$;SC:RETURN
  84. 840 :
  85. 850 REM  INITIALIZE VAR. FOR DATA ENTRY
  86. 860 :
  87. 870 PA$(X)="":AM(X)=0:T1$(X)="":T2$(X)="":A1(X)=0:A2(X)=0:M1$(X)=""
  88. 880 MK$(X)="-":RETURN
  89. 1000 REM
  90. 1010 REM   INPUT DATA
  91. 1020 REM
  92. 1030 PRINT"";R$;:INPUT DA$(X)
  93. 1031 M$=LEFT$(DA$(X),2):Y$=MID$(DA$(X),5,2):A$=MID$(DA$(X),3,2)
  94. 1032 A=VAL(A$):Y=VAL(Y$):M=VAL(M$)
  95. 1033 IFM<1ORM>12ORY<85ORY>90ORA<1ORA>31THEN1030
  96. 1035 PRINTR$"";:INPUTCH$(X):GOTO1090
  97. 1040 PRINTR$"";:INPUTPA$(X):IFPA$(X)="DEPOSIT"THENPA$(X)="D":GOTO1200
  98. 1042 IF PA$(X)="D"THEN 1200
  99. 1043 IFPA$(X)="VOID"THENMK$(X)="X":AM(X)=0:A1(X)=0:A2(X)=0:GOSUB700:GOTO1120
  100. 1044 IFPA$(X)="*"ORPA$(X)="-"ORPA$(X)=""THENPRINT"[145][145][145]":GOTO1040
  101. 1045 PRINTR$"";:INPUTAM$:AM(X)=VAL(AM$):IFAM(X)=0THENPRINT"[145][145][145]":GOTO1045
  102. 1047 AM(X)=FN R2(AM(X))
  103. 1050 PRINTR$"";:INPUTDS$(X)
  104. 1051 IFVAL(DS$(X))<1ORVAL(DS$(X))>2THENPRINT"[145][145][145]":GOTO1050
  105. 1052 IFDS$(X)="1"THENA1(X)=AM(X):T2$(X)="-":A2(X)=0
  106. 1055 PRINTR$"";:INPUTT1$(X)
  107. 1056 IFVAL(T1$(X))<1ORVAL(T1$(X))>HCTHENPRINT"[145][145][145]":GOTO1055
  108. 1057 IFDS$(X)="1"THENA1(X)=AM(X):PRINTR$;"";A1(X):PRINT"":GOTO1070
  109. 1060 PRINTR$;:INPUTA1$:A1(X)=VAL(A1$):A1(X)=FN R2(A1(X))
  110. 1062 IFA1(X)=0THENPRINT"[145][145]":GOTO1060
  111. 1065 PRINTR$"";:INPUTT2$(X)
  112. 1067 IFVAL(T2$(X))<1ORVAL(T2$(X))>HCTHENPRINT"[145][145][145]":GOTO1065
  113. 1069 A2(X)=AM(X)-A1(X):A2(X)=FNR2(A2(X)):PRINTR$"";A2(X)
  114. 1070 PRINTR$"";:INPUT M1$(X)
  115. 1075 IFFC=1THEN15040
  116. 1080 GOTO3040
  117. 1090 IFLEFT$(CH$(X),1)="-"THENCH$(X)="-":PRINT"[145]";R$"-    "
  118. 1095 C=VAL(CH$(X)):IFC<1000ORC>9999THENIFCH$(X)<>"*"ANDCH$(X)<>"-"THEN1110
  119. 1100 GOTO1040
  120. 1110 PRINT"[145][145][145]":GOTO1035
  121. 1120 IFFC=1THEN15040
  122. 1130 GOTO3085
  123. 1200 REM
  124. 1210 REM    INPUT DEPOSIT
  125. 1220 REM
  126. 1230 CH$(X)="*":DS$(X)="1":T1$(X)="D":T2$(X)="-":A2(X)=0:SC=SC-1
  127. 1240 PRINT"";R$;"*     ":PRINT"";R$;"[158]DEPOSIT[146]"
  128. 1250 PRINTR$"";:INPUTAM$:AM(X)=VAL(AM$):AM(X)=FNR2(AM(X)):A1(X)=AM(X)
  129. 1255 IFAM(X)=0THENPRINT"[145][145][145]":GOTO1250
  130. 1257 PRINTR$"  ";T1$(X):PRINTR$;" ";A1(X):PRINT"";R$;"   "
  131. 1260 PRINTR$;"          ":PRINTR$"";:INPUTM1$(X)
  132. 1270 PRINT D$;ME$(1):GOSUB8
  133. 1290 IF AN$="E"THEN PRINTD$;ME$(3):SC=SC+1:GOTO1000
  134. 1295 IF FC=1THEN15070
  135. 1300 IFAN$="C"THEN X=X-1:GOSUB700:GOTO3200
  136. 1310 IF AN$<>"A"THEN1270
  137. 1320 BA=BA+AM(X):HE=HE+1:A1(0)=AM(X):GOSUB700:GOTO3200
  138. 2000 REM
  139. 2010 REM        MAIN MENU
  140. 2020 REM
  141. 2025 POKE53280,6:POKE53281,6
  142. 2027 PRINT"[147]";TAB(11)"[150]*** CHECKBOOK ***":PRINTTAB(12)"[152]BY ARNOLD SOLOF"
  143. 2030 PRINTTAB(15)"[158]MAIN MENU":PRINTTAB(15)"[144][184][184][184][184][184][184][184][184][184]"
  144. 2040 PRINT"1. ENTER CHECKS/DEPOSITS"
  145. 2060 PRINT"2. MONTHLY SUMMARY"
  146. 2070 PRINT"3. RECONCILE CHECKBOOK WITH STATEMENT"
  147. 2120 PRINT"4. EDIT/DISPLAY CATEGORY NAMES"
  148. 2130 PRINT"5. QUARTERLY SUMMARY"
  149. 2200 PRINT D$;ME$(2):GOSUB8
  150. 2220 AN=VAL(AN$):IFAN<1ORAN>5THENPRINT"[145][145]":GOTO2200
  151. 2230 ON AN GOTO16000,20000,23000,6000,24000
  152. 2315 YM$=RIGHT$(MY$,2)+LEFT$(MY$,2)
  153. 3000 REM
  154. 3010 REM    ENTER CHECKS/DEPOSITS
  155. 3020 REM
  156. 3030 X=HE+1:TN=SC:SC=SC+1:GOSUB 500:PRINT"REC#";X:GOSUB850:GOSUB800:GOTO1000
  157. 3040 PRINT D$;ME$(1)
  158. 3050 GET AN$:IFAN$=""THEN 3050
  159. 3060 IF AN$="C" THEN X=X-1:SC=SC-1:GOSUB700:GOTO3200
  160. 3070 IF AN$="E"THEN PRINTD$;ME$(3):GOTO1000
  161. 3080 IFAN$<>"A"THEN3050
  162. 3085 IFCH$(X)="-"ORPA$(X)="VOID"ORNP$="0"THEN3125
  163. 3090 PRINTD$;ME$(4):GOSUB8
  164. 3110 IFAN$="Y"THEN GOSUB3300:GOSUB3400:GOSUB5000:GOTO3125
  165. 3120 IFAN$<>"N"THEN3090
  166. 3125 BA=BA-AM(X):HE=HE+1:GOSUB700:IFVAL(CH$(X))<>SCTHENSC=TN:REM HIGH ENTRY#
  167. 3200 PRINTD$;ME$(2);D$;ME$(6)
  168. 3210 GOSUB8
  169. 3220 IF AN$="E"THEN3030
  170. 3222 IF AN$="R"THEN 12000
  171. 3223 IF AN$="S"THEN 18000
  172. 3224 IF AN$="C"THEN 15000
  173. 3230 IFAN$="_"THENGOSUB3250:RUN
  174. 3231 IF AN$="+"THEN13000
  175. 3232 IF AN$="-"THEN14000
  176. 3233 IF AN$=CHR$(222)THEN10000:REM (null)
  177. 3234 IF AN$="B"THEN10200
  178. 3235 IF AN$="?"THEN11000
  179. 3236 IF AN$="\"THEN GOSUB3250:GOTO3200
  180. 3237 IF AN$="%"THENGOSUB16100:GOSUB700:GOTO3200
  181. 3238 IF AN$="N"THEN GOSUB4000:GOSUB700:GOTO3200
  182. 3239 IF AN$="D"THEN PRINT"[147]":GOSUB16003:GOSUB700:GOTO3200
  183. 3240 GOTO3210
  184. 3250 GOSUB17000:GOSUB8500:GOSUB23900:GOSUB6400:RETURN
  185. 3300 PRINT"[147]";TAB(13);"ENTER ADDRESS":PRINTTAB(9)"(NO COMMAS OR COLONS)"
  186. 3301 A1$="":A2$=""
  187. 3302 INPUT"ADDRESS 1[146]";A1$:INPUT"ADDRESS 2[146]";A2$:PRINTD$;ME$(1)
  188. 3303 IFA1$=""ANDA2$=""THENRETURN
  189. 3305 GOSUB8:IFAN$="E"THEN3302
  190. 3310 IFAN$="C"THENA1$="":A2$="":RETURN
  191. 3320 IFAN$="A"THENRETURN
  192. 3330 GOTO3305
  193. 3400 OPEN1,4:PRINT#1,ES$;CHR$(11)"16":CLOSE1:RETURN
  194. 4000 REM
  195. 4010 REM     SET STARTING CHK #
  196. 4020 REM
  197. 4045 PRINT"[147]";SC;
  198. 4050 INPUT"ENTER STARTING CHECK #";SC$:SC=VAL(SC$):IFSC<1ORSC>9999THEN4050
  199. 4060 SC=SC-1:RETURN
  200. 4100 REM
  201. 4110 REM     RESET DATE
  202. 4120 REM
  203. 4130 PRINTD$;"[145][145]RESET DATE"
  204. 4140 PRINT"";DA$:INPUT"[145]";DA$
  205. 4150 GOSUB700:GOTO3200
  206. 5000 REM
  207. 5010 REM      PRINT CHECK
  208. 5020 REM
  209. 5030 OPEN1,4:PRINT#1,"MEMO:";
  210. 5035 IFT1$(X)="6"THENPRINT#1,"SALARY-PERIOD ENDING: ";PP$:GOTO5040
  211. 5037 PRINT#1,M1$(X)
  212. 5040 PRINT#1,ES$;CHR$(11)"06"
  213. 5041 DT$=DA$(X):GOSUB10500:PRINT#1,T$"42"MM$;DD$;YY$;
  214. 5050 PRINT#1,P1$;T$"63$ ******";:RD=AM(X):GOSUB22000:PRINT#1,RD$
  215. 5051 GOSUB9000:PRINT#1
  216. 5053 PRINT#1,T$"05"PA$(X):PRINT#1,P2$;T$"05 ";A1$:PRINT#1,T$"05";A2$
  217. 5070 PRINT#1,ES$;CHR$(11)"10":CLOSE1:A1$="":A2$="":RETURN
  218. 6000 REM   PAYMENT CATEGORY FILE
  219. 6030 REM
  220. 6040 REM EDIT AND DISPLAY CATEGORY NAMES
  221. 6041 REM
  222. 6051 PRINT"[147]";D$;"[145][145]ENTER TOTAL # CATEGORIES  (MAX=30)":PRINT" "HC
  223. 6052 INPUT"[145]";HC$:A=VAL(HC$):IFA<1ORA>30THEN6051
  224. 6054 PRINT"[147]";D$;"[145][145][145]ENTER CHECKBOOK OWNER'S NAME":PRINT"  "OW$:INPUT"[145]";OW$
  225. 6060 HC=A:S=1:F=15
  226. 6070 PRINT"[147][159]";TAB(5);"DISPLAY/EDIT CATEGORY NAMES"
  227. 6080 FORI=S TO F:IFI<10THENPRINT" ";
  228. 6085 PRINTI;TAB(6);CA$(I)
  229. 6090 NEXT
  230. 6100 PRINT""
  231. 6105 FORI=S TO F
  232. 6110 PRINTTAB(4);:INPUTCA$(I)
  233. 6120 NEXT
  234. 6130 PRINTD$;ME$(2);D$;ME$(1):GOSUB8
  235. 6150 IF S=1 AND AN$="A"THENS=16:F=30:GOTO6070
  236. 6155 IFS=16 AND AN$="A"THENGOSUB6400:GOSUB6500:GOTO2000
  237. 6160 IFAN$="C"THENGOSUB6300:GOTO2000
  238. 6180 IF AN$="E"THEN6070
  239. 6185 GOTO6130
  240. 6300 REM
  241. 6310 REM  READ CATNAM FILE
  242. 6320 REM
  243. 6330 OPEN15,8,15:OPEN8,8,8,"CATNAM,S,R":GOSUB7000:FORI=0TO30
  244. 6340 INPUT#8,CA$(I):NEXT:INPUT#8,HC:INPUT#8,OW$
  245. 6350 INPUT#8,NM:IFNM=0THEN6370
  246. 6360 FORI=1TONM:INPUT#8,NM$(I):XX$(I)="-":NEXT
  247. 6370 CLOSE8:CLOSE15:RETURN
  248. 6400 REM
  249. 6410 REM   WRITE CATNAME FILE
  250. 6420 REM
  251. 6425 FORI=0TO30:IFCA$(I)=""THENCA$(I)="-"
  252. 6427 NEXT
  253. 6430 OPEN15,8,15:OPEN8,8,8,"@0:CATNAM,S,W":GOSUB7000
  254. 6440 FORI=0TO30:PRINT#8,CA$(I):NEXT:PRINT#8,HC:PRINT#8,OW$
  255. 6450 PRINT#8,NM:FORI=1TONM:PRINT#8,NM$(I):NEXT:CLOSE8:CLOSE15:RETURN
  256. 6500 :
  257. 6510 REM    PRINT CATNAME FILE
  258. 6520 :
  259. 6530 PRINTD$"[158]PRINT CATEGORY NAME LIST ?[145]":GOSUB8
  260. 6540 IFAN$="N"THENRETURN
  261. 6550 IFAN$<>"Y"THEN6530
  262. 6560 OPEN1,4:PRINT#1,P1$T$"30CATEGORY NAME LIST"P2$:PRINT#1
  263. 6562 LN=LEN(OW$):PRINT#1,T$;TAB(FNCP(LN));OW$:PRINT#1
  264. 6565 PRINT#1,"HIGHEST ACTIVE CATEGORY =";HC:PRINT#1
  265. 6570 FORI=1TO15:PRINT#1,I;T$"05";CA$(I);
  266. 6580 PRINT#1,T$"41";I+15;T$"47";CA$(I+15):NEXT:CLOSE1:RETURN
  267. 7000 REM
  268. 7010 REM   CHECK ERROR CHANNEL
  269. 7020 REM
  270. 7030 INPUT#15,EN,E$,ET,EB
  271. 7040 IFEN=0THENRETURN
  272. 7050 PRINTD$;EN;E$;ET;EB;"   (ANY KEY)[145]":GOSUB8:RETURN
  273. 8000 REM
  274. 8010 REM      READ DATA FILE
  275. 8020 REM
  276. 8040 OPEN15,8,15:OPEN8,8,8,"MAIN DATA"+MY$+",S,R":GOSUB7000
  277. 8045 INPUT#8,BA:INPUT#8,BB
  278. 8050 FORI=0TO31:INPUT#8,TT(I):NEXT:REM CAT TOT
  279. 8060 INPUT#8,HE
  280. 8070 FORI=1TOHE:INPUT#8,AM(I):INPUT#8,DA$(I):INPUT#8,CH$(I):INPUT#8,PA$(I)
  281. 8080 INPUT#8,DS$(I):INPUT#8,T1$(I):INPUT#8,A1(I):INPUT#8,T2$(I)
  282. 8090 INPUT#8,A2(I):INPUT#8,M1$(I):INPUT#8,MK$(I):NEXT:REM MK$()=MARKER STATMT
  283. 8100 CLOSE8:CLOSE15:RETURN
  284. 8500 REM
  285. 8501 REM      WRITE DATA FILE
  286. 8510 REM
  287. 8520 BA=FNR2(BA)
  288. 8540 OPEN15,8,15:OPEN8,8,8,"@0:MAIN DATA"+MY$+",S,W":GOSUB7000
  289. 8545 PRINT#8,BA:PRINT#8,BB
  290. 8550 FORI=0TO31:PRINT#8,TT(I):NEXT:REM STORE CATEGORY TOTALS
  291. 8560 PRINT#8,HE
  292. 8570 FORI=1TOHE
  293. 8571 IFDA$(I)=""THENDA$(I)="-"
  294. 8572 IFCH$(I)=""THENCH$(I)="-"
  295. 8573 IFPA$(I)=""THENPA$(I)="-"
  296. 8574 IFDS$(I)=""THENDS$(I)="-"
  297. 8575 IFT1$(I)=""THENT1$(I)="-"
  298. 8576 IFT2$(I)=""THENT2$(I)="-"
  299. 8577 IFM1$(I)=""THENM1$(I)="-"
  300. 8578 IFMK$(I)=""THENMK$(I)="-"
  301. 8579 PRINT#8,AM(I):PRINT#8,DA$(I):PRINT#8,CH$(I):PRINT#8,PA$(I)
  302. 8580 PRINT#8,DS$(I):PRINT#8,T1$(I):PRINT#8,A1(I):PRINT#8,T2$(I)
  303. 8590 PRINT#8,A2(I):PRINT#8,M1$(I):PRINT#8,MK$(I):NEXT
  304. 8600 CLOSE8:CLOSE15:RETURN
  305. 9000 REM     NUMBER TRANSLATOR
  306. 9020 PRINT#1,"***";:AI=INT(AM(X))  :REM   INTEGER
  307. 9030 AI$=STR$(AI):REM TO A STRING
  308. 9040 AI$=RIGHT$(AI$,LEN(AI$)-1):REM STRIP SIGN
  309. 9050 IF AI>99999THEN9070
  310. 9060 FORI=1TO6-(LEN(AI$)):AI$="0"+AI$:NEXT:REM  PAD WITH PRECEDING ZEROS
  311. 9070 REM     CALCULATE CENTS
  312. 9080 CE$=STR$(AM(X)) :REM TO STRING
  313. 9090 CE$=RIGHT$(CE$,3)  :REM LAST 3 CHARPRINTMM(X)
  314. 9100 IFMID$(CE$,1,1)="."THENCE$=RIGHT$(CE$,2):GOTO 9130
  315. 9110 IFMID$(CE$,2,1)="."THENCE$=RIGHT$(CE$,1)+"0":GOTO 9130
  316. 9120 CE$="00"
  317. 9130 REM       TRANSLATE #
  318. 9140 IF AI=0THENPRINT#1," ZERO";:GOTO9230
  319. 9150 N$=MID$(AI$,1,1):GOSUB9270:IFN$="0"THEN9170
  320. 9160 PRINT#1," HUNDRED";
  321. 9170 N$=MID$(AI$,2,2):GOSUB9270
  322. 9180 IF MID$(AI$,1,3)="000" THEN 9200
  323. 9190 PRINT#1," THOUSAND";
  324. 9200 N$=MID$(AI$,4,1):GOSUB9270:IFN$="0"THEN9220
  325. 9210 PRINT#1, " HUNDRED";
  326. 9220 N$=MID$(AI$,5,2):GOSUB9270
  327. 9230 PRINT#1,  " DOLLARS";
  328. 9240 PRINT#1,  " -- ";CE$;"/100 CENTS ***"
  329. 9250 RETURN
  330. 9270 REM      PRINT NUMBER
  331. 9280 N=VAL(N$):IFN=0THENRETURN
  332. 9290 PRINT#1, " ";O$(N);:RETURN
  333. 10000 :
  334. 10010 REM  ENTER PAYROLL CHECKS FROM DISK FILE
  335. 10020 :
  336. 10030 PRINT"[147]";TAB(9)"[158]ENTER PAYROLL FROM DISK":K=0:REM # 0 AMT SKIPPED
  337. 10040 PRINT"1. GET PRINTER READY":PRINT"2. ALIGN CHECKS   (ANY KEY)[145]":GOSUB8
  338. 10060 OPEN15,8,15:OPEN8,8,8,"PAYMERGE,S,R":GOSUB7000:SE=HE
  339. 10070 INPUT#8,PP$:INPUT#8,NE:FORJ=1TONE:X=J+SE-K:INPUT#8,AM(X)
  340. 10082 INPUT#8,PA$(X):INPUT#8,RT:INPUT#8,HR:INPUT#8,GR:INPUT#8,SS
  341. 10084 INPUT#8,FT:INPUT#8,SI:INPUT#8,SU
  342. 10086 IF AM(X)=0THENK=K+1:GOTO10110
  343. 10090 SC=SC+1:HE=HE+1:CH$(X)=STR$(SC):A=LEN(CH$(X)):CH$(X)=RIGHT$(CH$(X),A-1)
  344. 10095 DA$(X)=DA$:DS$(X)="1":T1$(X)="6":A1(X)=AM(X)
  345. 10100 T2$(X)="-":A2(X)=0:M1$(X)=PP$:GOSUB10120:GOSUB5000
  346. 10110 NEXT:GOSUB7000:CLOSE8:CLOSE15:GOSUB17000:GOSUB700:GOTO3200
  347. 10120 REM  PRINT CHECKSTUB
  348. 10130 :
  349. 10135 OPEN1,4:PRINT#1,T$"20";OW$:PRINT#1
  350. 10140 PRINT#1,PA$(X):PRINT#1,"PAY PERIOD ENDING:";PP$:PRINT#1
  351. 10150 PRINT#1,"      RATE    HOURS     GROSS      FICA     FIT      SIT";
  352. 10152 PRINT#1,T$"62SUT     NET"
  353. 10155 PRINT#1,T$"05"RT;T$"13"HR;T$"23"GR;T$"34"SS;
  354. 10160 PRINT#1,T$"43"FT;T$"52"SI;T$"61"SU;T$"69"AM(X)
  355. 10170 PRINT#1,ES$;CHR$(11)"09":CLOSE1:RETURN
  356. 10200 :
  357. 10210 PRINTD$;"[145][145]ENTER BEGINNING BALANCE ";D1$;":[146]":PRINT"";BB;D$;
  358. 10220 INPUT"[145]";BB:GOSUB17000:GOSUB700:GOTO3200
  359. 10500 :
  360. 10510 REM CALCULATE DATE DISPLAY STRINGS
  361. 10520 :
  362. 10530 MM$=LEFT$(DT$,2):MM=VAL(MM$):MM$=MO$(MM)
  363. 10540 DD$=MID$(DT$,3,2):DD=VAL(DD$):DD$=STR$(DD)+", "
  364. 10550 YY$=MID$(DT$,5,2):YY$="19"+YY$:RETURN
  365. 11000 :
  366. 11010 PRINT"[147]";TAB(13)"[158]COMMAND SUMMARY[129]"
  367. 11020 :
  368. 11030 PRINT" E[129] = NEW ENTRY (CHECK/DEPOSIT/OTHER)"
  369. 11035 PRINT" R[129] = SEARCH FOR ENTRY BY RECORD #"
  370. 11040 PRINT" S[129] = SEARCH FOR ENTRY BY OTHER FIELDS"
  371. 11045 PRINT" C[129] = CHANGE AN ENTRY"
  372. 11050 PRINT" +[129] = DISPLAY NEXT ENTRY"
  373. 11055 PRINT" -[129] = DISPLAY PREVIOUS ENTRY"
  374. 11065 PRINT" [255][129] = ENTER PAYROLL CHECKS FROM DISK"
  375. 11075 PRINT" %[129] = SET BEG.BAL = END BAL PREV MONTH"
  376. 11090 PRINT" B[129] = SET BEGINNING BALANCE FOR MONTH"
  377. 11095 PRINT" N[129] = RESET STARTING CHECK#"
  378. 11100 PRINT" D[129] = RESET TODAY'S DATE"
  379. 11112 PRINT" \[129] = SAVE WORK BUT KEEP SAME MENU"
  380. 11115 PRINT" ?[129] = THIS HELP SCREEN"
  381. 11118 PRINT" _ = DATA ENTRY COMPLETED, SAVE ON DISK":PRINTD$;"[129](ANY KEY)[145]"
  382. 11120 GOSUB8:GOSUB700:GOTO3200
  383. 12000 :
  384. 12010 REM     REC# SEARCH
  385. 12030 PRINTD$;"[145]REC#[146] ";:INPUTX$:X=VAL(X$):IFX<1ORX>HETHEN12030
  386. 12040 GOSUB700:GOTO3200
  387. 13000 :
  388. 13010 REM    NEXT RECORD (+)
  389. 13020 :
  390. 13030 X=X+1:IFX>HETHENX=HE:PRINTD$"END OF FILE!  (ANY KEY)[145]":GOSUB8:GOTO3200
  391. 13040 GOTO12040
  392. 14000 :
  393. 14010 REM    PREVIOUS RECORD (-)
  394. 14020 :
  395. 14030 X=X-1:IFX<1THENX=1:PRINTD$"END OF FILE!  (ANY KEY)[145]":GOSUB8:GOTO3200
  396. 14040 GOTO12040
  397. 15000 :
  398. 15010 REM       CHANGE RECORD
  399. 15020 :
  400. 15030 FC=1:GOSUB15100:GOSUB700:GOTO1000
  401. 15040 PRINTD$;ME$(1):GOSUB8
  402. 15050 IFCH$(X)="*"ANDAN$="E"THEN1290
  403. 15060 IFAN$="E"THEN1000
  404. 15070 IFAN$="C"THENFC=0:GOSUB15200:GOTO15093:REM FC= FLAG FOR CHG MODE
  405. 15080 IFAN$<>"A"THEN15040
  406. 15090 Q=X:GOSUB17000:X=Q:FC=0
  407. 15093 IFCH$(X)="*"THENSC=SC+1
  408. 15095 GOSUB700:GOTO3200
  409. 15100 REM  TEMPORARY STORE REC VALUES
  410. 15101 T1$=DA$(X):T2$=CH$(X):T3=AM(X):T4$=PA$(X):T5$=DS$(X):T6$=T1$(X)
  411. 15110 T6=A1(X):T7$=T2$(X):T7=A2(X):T8$=M1$(X):T9$=MK$(X):RETURN
  412. 15200 REM   RECOVER STORED REC VALUES
  413. 15210 DA$(X)=T1$:CH$(X)=T2$:AM(X)=T3:PA$(X)=T4$:DS$(X)=T5$:T1$(X)=T6$
  414. 15220 A1(X)=T6:T2$(X)=T7$:A2(X)=T7:M1$(X)=T8$:MK$(X)=T9$:RETURN
  415. 16000 :
  416. 16001 REM   INITIAL ENTER EDIT DISPLAY
  417. 16002 POKE53280,0:POKE53281,0:GOSUB4000:GOSUB16003:GOTO16010
  418. 16003 PRINT""TAB(20)"MMDDYY"
  419. 16004 PRINT"ENTER TODAY'S DATE";:INPUTDA$:M$=LEFT$(DA$,2):Y$=MID$(DA$,5,2)
  420. 16005 A$=MID$(DA$,3,2):A=VAL(A$):Y=VAL(Y$):M=VAL(M$)
  421. 16006 IFM<1ORM>12ORY<85ORY>90ORA<1ORA>31THEN16003
  422. 16007 RETURN
  423. 16010 DT$=DA$:GOSUB10500:D1$=MM$+" "+YY$:MY$=M$+Y$:GOSUB8000
  424. 16040 IFEN=62THENGOSUB16100:REM NEW MONTH, GET CURRENT BAL FROM LAST MONTH
  425. 16050 X=0:GOSUB700:GOTO3200
  426. 16100 REM  FETCH BEGINNING BALANCE FROM ENDING BALANCE OF PREVIOUS MONTH
  427. 16110 M2=M-1:IFM2=0THENA$="12":Y1=Y-1:Y1$=STR$(Y1):Y1$=RIGHT$(Y1$,2):GOTO16140
  428. 16115 A$=STR$(M2):Y1=Y:Y1$=STR$(Y1)
  429. 16120 Y1$=RIGHT$(Y1$,2):IFM2>9THENA$=RIGHT$(A$,2):GOTO 16140
  430. 16130 A$="0"+RIGHT$(A$,1)
  431. 16140 A$=A$+Y1$:OPEN15,8,15:OPEN8,8,8,"MAIN DATA"+A$+",S,R":GOSUB7000
  432. 16150 INPUT#8,BB:CLOSE8:CLOSE15:GOSUB17000:RETURN
  433. 17000 :
  434. 17010 REM    CALCULATE MONTHLY TOTALS
  435. 17020 :
  436. 17025 BA=BB:FORI=0TO31:TT(I)=0:NEXT
  437. 17030 FORX=1TOHE:A1=VAL(T1$(X)):A2=VAL(T2$(X))
  438. 17035 IFPA$(X)="D"THENBA=BA+AM(X):TT(0)=TT(0)+AM(X):GOTO17050
  439. 17040 BA=BA-AM(X):TT(A1)=TT(A1)+A1(X):IFDS$(X)="1"THEN17047
  440. 17045 TT(A2)=TT(A2)+A2(X)
  441. 17047 TT(31)=TT(31)+AM(X)
  442. 17050 NEXT:BA=FN R2(BA):RETURN
  443. 18000 :
  444. 18010 REM    SEARCH FOR ENTRY (S)
  445. 18020 :
  446. 18030 PRINT"[147]"TAB(15)"SEARCH":PRINT"BY:":PRINT" 1. DATE"
  447. 18040 PRINT" 2. CHECK#":PRINT" 3. PAYEE":PRINT" 4. AMOUNT":PRINT" 5. MEMO"
  448. 18050 PRINTD$;"[145][145]SEARCH BY: ";:GOSUB8:AN=VAL(AN$)
  449. 18060 IFAN<1ORAN>5THEN18000
  450. 18135 PRINTAN$:INPUTSE$:I=1
  451. 18140 ONVAL(AN$)GOTO 18150,18170,18182,18190,18210
  452. 18150 FORI=1TOHE:IFSE$=DA$(I)THEN18310
  453. 18160 GOTO18300
  454. 18170 FORI=1TOHE:IFSE$=CH$(I)THEN18310
  455. 18180 GOTO18300
  456. 18182 FORI=1TOHE:IFSE$=PA$(I)THEN18310
  457. 18184 GOTO18300
  458. 18190 FORI=1TOHE:IFVAL(SE$)=AM(I)THEN18310
  459. 18200 GOTO18300
  460. 18210 FORI=1TOHE:IFSE$=M1$(I)THEN18310
  461. 18220 GOTO18300
  462. 18300 NEXT:PRINTD$;"RECORD NOT FOUND (ANY KEY)[145]":GOSUB8:X=0:GOSUB700:GOTO3200
  463. 18310 X=I:I=HE+1:GOSUB700:GOTO3200:REM REC FOUND
  464. 19000 :
  465. 19010 REM   CLEAR DATA FILE IN MEMORY
  466. 19020 :
  467. 19030 BA=0:BB=0:HE=0:FORI=0TO31:TT(I)=0:NEXT:FORI=1TO200
  468. 19040 DA$(I)="":CH$(I)="":PA$(I)="":AM(I)=0:DS$(I)="":T1$(I)="":A1(I)=0
  469. 19050 T2$(I)="":A2(I)=0:M1$(I)="":MK$(I)="":NEXT:RETURN
  470. 20000 :
  471. 20010 REM     MONTH END SUMMARY
  472. 20020 :
  473. 20030 OPEN1,4:REM TEMPORARY BALANCE
  474. 20040 PRINT"[147]1. LIST ONLY":PRINT"2. LIST + CATEGORIES":PRINTD$"OPTION?[145]"
  475. 20045 GOSUB8:IFAN$<"1"ORAN$>"2"THEN20045
  476. 20046 IFAN$="1"THENFB=1
  477. 20047 GOSUB21200
  478. 20050 :
  479. 20060 PRINT#1,P1$;CHR$(14);TAB(12)"SUMMARY FOR ";MY$:PRINT#1,CHR$(15):PRINT#1
  480. 20065 LN=LEN(OW$):PRINT#1,TAB(FNCP(LN));OW$:PRINT#1
  481. 20070 PRINT#1,"BEGINNING BALANCE =";BB;T$"49TOTAL CHECKS   =";TT(31)
  482. 20080 PRINT#1,"END MONTH BALANCE =";BA;T$"49TOTAL DEPOSITS =";TT(0)
  483. 20090 PRINT#1:GOSUB21300:GOSUB21310:GOSUB21000
  484. 20100 TB=BB:FOR I=1 TO HE:GOSUB21100:NEXT
  485. 20110 :
  486. 20200 :
  487. 20210 REM     CATEGORY SUMMARY
  488. 20220 :
  489. 20225 IFFB=1THENRUN
  490. 20230 PRINT#1:PRINT#1:PRINT#1:GOSUB20500
  491. 20235 FOR J=1TOHC:TC=0:GOSUB20300
  492. 20240 FOR I=1TOHE:A3=0
  493. 20250 IFVAL(T1$(I))=JTHENTC=TC+A1(I):A3=A1(I):GOSUB20310:GOTO20260
  494. 20255 IFVAL(T2$(I))=JTHENTC=TC+A2(I):A3=A2(I):GOSUB20310
  495. 20260 NEXT:PRINT#1,P1$T$"36";"TOTAL =";TC
  496. 20270 PRINT#1,P2$;
  497. 20280 PRINT#1,L$:NEXT:CLOSE1:RUN
  498. 20300 J$=STR$(J):A=LEN(J$):J$=RIGHT$(J$,A-1)+". "
  499. 20302 PRINT#1,P1$;J$;CA$(J);CHR$(27);CHR$(27);
  500. 20305 PRINT#1,CHR$(73):RETURN
  501. 20310 GOSUB21400
  502. 20311 PRINT#1,MK$(I);CHR$(9);I$;CHR$(9);LEFT$(DA$(I),4);CHR$(9);CH$(I);
  503. 20312 PRINT#1,CHR$(9);LEFT$(PA$(I),24);CHR$(9)A3;CHR$(9)DS$(I);
  504. 20320 PRINT#1,CHR$(9);LEFT$(M1$(I),25):RETURN
  505. 20500 :
  506. 20510 REM   COLUMN HEADING FOR CATEGORYS
  507. 20520 :
  508. 20530 PRINT#1,P1$;CHR$(31)TAB(18)"CATEGORIES";CHR$(30):PRINT#1
  509. 20535 PRINT#1,"X";CHR$(9);"R#";CHR$(9);"DATE";CHR$(9)"CHK#";
  510. 20540 PRINT#1,CHR$(9)"PAYEE";CHR$(9)" DBMT";CHR$(9)"#D";
  511. 20550 PRINT#1,CHR$(9)"MEMO":PRINT#1,P2$;L$:RETURN
  512. 21000 :
  513. 21010 REM   PRINT COLUMN HEADING FOR REPORT
  514. 21020 :
  515. 21030 PRINT#1,"X";CHR$(9);"R#";CHR$(9);"DATE";CHR$(9);"CHK#";
  516. 21035 PRINT#1,CHR$(9)"PAYEE";CHR$(9);" AMOUNT";CHR$(9);"D1";CHR$(9);"D2";
  517. 21040 PRINT#1,CHR$(9);"MEMO";CHR$(9)" BALANCE":PRINT#1,P2$;L1$:RETURN
  518. 21100 :
  519. 21110 REM   PRINT CHECK DATA MAIN LIST
  520. 21120 IFPA$(I)="D"THENTB=TB+AM(I):TB=FN R2(TB):GOSUB21400:GOTO21160
  521. 21130 TB=TB-AM(I):TB=FN R2(TB):GOSUB21400
  522. 21160 PRINT#1,MK$(I);CHR$(9);I$;CHR$(9);LEFT$(DA$(I),4);CHR$(9);CH$(I);
  523. 21167 P$=LEFT$(PA$(I),24):IFPA$(I)="D"THENP$="*** DEPOSIT ***"
  524. 21170 PRINT#1,CHR$(9);P$;CHR$(9);AM(I);CHR$(9);T1$(I);CHR$(9);T2$(I);
  525. 21180 PRINT#1,CHR$(9);LEFT$(M1$(I),25);CHR$(9);TB:RETURN
  526. 21200 :
  527. 21201 REM  ENTER YEAR AND MONTH
  528. 21202 :
  529. 21203 PRINT"[147]"TAB(12)"END MONTH SUMMARY"
  530. 21205 PRINTTAB(22)"MMYY"
  531. 21210 PRINT"ENTER MONTH AND YEAR";:INPUTDA$:M$=LEFT$(DA$,2):Y$=MID$(DA$,3,2)
  532. 21220 Y=VAL(Y$):M=VAL(M$)
  533. 21240 MY$=M$+Y$:GOSUB8000:RETURN
  534. 21300 PRINT#1,CHR$(27)"W"CHR$(96)CHR$(28):RETURN:REM SET 12 CPI
  535. 21310 PRINT#1,CHR$(27);CHR$(27)CHR$(9);"003,007,012,017,042,053,056,059,085";
  536. 21320 PRINT#1,CHR$(13):RETURN :REM SET TABS
  537. 21400 I$=STR$(I):A=LEN(I$):I$=RIGHT$(I$,A-1):IFA=2THENI$="00"+I$
  538. 21410 IFA=3THENI$="0"+I$
  539. 21420 RETURN:REM PAD REC# WITH 0'S
  540. 22000 :
  541. 22010 REM  DISPLAY 2 DECIMALS
  542. 22020 :
  543. 22030 RD=FNR2(RD):RD$=STR$(RD):A=LEN(RD$):IFA=2THEN22070
  544. 22040 Z$=MID$(RD$,A-2,2)
  545. 22050 IFLEFT$(Z$,1)="."THEN22080
  546. 22060 IF RIGHT$(Z$,1)="."THENRD$=RD$+"0":GOTO22080
  547. 22070 RD$=RD$+".00"
  548. 22080 A=LEN(RD$):RD$=RIGHT$(RD$,A-1):RETURN
  549. 23000 :
  550. 23002 REM   RECONCILE CHKBK & STATEMENT
  551. 23003 :
  552. 23005 REM    ENTER STATEMENT ENTRIES
  553. 23010 PRINT"[147]";TAB(2)"[158]RECONCILE CHECKBOOK WITH STATEMENT"
  554. 23012 OPEN1,4
  555. 23014 INPUT"ENTER STATEMENT BALANCE";SB
  556. 23015 INPUT"ENTER STATEMENT DATE (MMYY)";EM$:EM$=RIGHT$(EM$,2)+LEFT$(EM$,2)
  557. 23017 PRINT"[158]  (^ = EDIT PRIOR ENTRY)   (_ = DONE)"
  558. 23020 :
  559. 23030 PRINT"[156] ENTER ALL CHKS/AMTS SHOWN ON STATEMENT":I=0
  560. 23032 PRINT"[158]* = 'CHECK #' FOR DEPOSIT":PRINT"- = 'CHECK #' FOR NON CHK/DEP"
  561. 23034 PRINT"# ITEMS"
  562. 23035 I=I+1
  563. 23040 IFI=0THENI=1
  564. 23041 PRINT""I"[145]";:PRINTTAB(10)"CHECK #";:INPUTRC$(I):A=VAL(RC$(I))
  565. 23042 IFRC$(I)="*"ORRC$(I)="-"THEN23050
  566. 23043 IF RC$(I)="^"THEN I=I-1:PRINT"[145][145][145][145][145][145]":GOTO23040
  567. 23046 IF RC$(I)="_" THEN HR=I-1:GOTO23200
  568. 23048 IFA<1000 OR A>10000 THEN PRINT"[145][145][145]":GOTO23041
  569. 23050 PRINTTAB(10);
  570. 23060 INPUT"AMOUNT ";AN$:RA(I)=VAL(AN$):IFRA(I)=<0THENPRINT"[145][145]":GOTO23050
  571. 23070 GOTO23035
  572. 23200 PRINT#1,CHR$(31)"  RECONCILE CHECKBOOK WITH STATEMENT";CHR$(30):PRINT#1
  573. 23201 LN=LEN(OW$):PRINT#1,TAB(FNCP(LN));OW$
  574. 23202 PRINT#1:PRINT#1:PRINTD$;"PLEASE STANDBY, RECONCILING ...[145]"
  575. 23205 UD=0:UC=0:Q=0
  576. 23210 Q=Q+1:MY$=NM$(Q):YM$=RIGHT$(MY$,2)+LEFT$(MY$,2):IFYM$>EM$ORQ>NMTHEN23605
  577. 23215 GOSUB8000:REM LOOP OF ACTIVE MONTHS
  578. 23225 PRINT#1,P1$"MONTH --> ";MY$;P2$
  579. 23230 PRINT#1:FOR J=1TOHE:K=0:REM  LOOP REC/MONTH
  580. 23240 IF MK$(J)="X"THEN 23500:REM REC MARKED SO SKIP
  581. 23245 K=K+1:IFK>HRTHEN23500:REM K=STATEMENT ENTRY#, IF END LIST THEN NEXT REC#
  582. 23250 IF SM$(K)="X"THEN23245:REM STMT ENTRY MARKED SO SKIP IT
  583. 23270 REM  COMPARE CHK# WITH STMT ENTRY#
  584. 23280 IF CH$(J)<>RC$(K)THEN23245:REM DON'T - MATCH
  585. 23290 IFAM(J)=RA(K)THENMK$(J)="X":SM$(K)="X":GOTO23500:REM +MATCH ,SO MARK
  586. 23300 IF VAL(CH$(J))=0THEN23245
  587. 23310 PRINT#1,"AMOUNT MISMATCH ERROR, REC#";J;"    CHECK# ";CH$(J)
  588. 23500 NEXT
  589. 23510 REM  TOTAL UNMARKED CHECKS/DEPOSIT
  590. 23512 PRINT#1,P1$;
  591. 23515 PRINT#1,T$"20LIST OF UNMARKED RECORDS FOR THIS MONTH"
  592. 23516 PRINT#1,P2$;:PRINT#1,L$
  593. 23517 XX$(Q)="X":REM DEFAULT ALL ENTRIES MARKED UNLESS LINE 23535 REACHED
  594. 23520 FORJ=1TOHE
  595. 23530 IFMK$(J)="X"THEN23570:REM MARKED SO SKIP
  596. 23535 XX$(Q)="-" :REM UNMARKED ENTRY FOUND
  597. 23540 IFCH$(J)="*"THEN UD=UD+AM(J):GOSUB23950:GOTO23570
  598. 23550 UC=UC+AM(J):GOSUB23950:GOTO23570
  599. 23570 NEXT:PRINT#1,L$:PRINT#1:GOSUB8500
  600. 23600 GOTO 23210
  601. 23605 GOSUB23700
  602. 23610 RB=BA-UD+UC:RB=FNR2(RB):DF=RB-SB:DF=FNR2(DF)
  603. 23612 PRINT#1,P5$"05";"CHECKBOOK BALANCE:";T$"32";BA
  604. 23613 PRINT#1,T$"27-";T$"30";UD;T$"43(UNMARKED DEPOSITS)"
  605. 23614 PRINT#1,T$"27+";T$"30";P3$;UC;
  606. 23615 PRINT#1,P4$T$"45";"(UNMARKED CHECKS)"
  607. 23616 PRINT#1,T$"27=";T$"30";RB;T$"43(RECONCILED BALANCE)"
  608. 23617 PRINT#1:PRINT#1,"STATEMENT BALANCE ";T$"30";SB:PRINT#1
  609. 23618 PRINT#1,P1$
  610. 23620 IFABS(SB-RB)<.001THENPRINT#1,"CHECKBOOK AGREES WITH STATEMENT":GOTO23650
  611. 23630 IFDF>0THENPRINT#1,"CHECKBOOK IS";DF" GREATER THAN THE STATEMENT":GOTO23650
  612. 23640 PRINT#1,"CHECKBOOK IS"; -(DF);" LESS THAN THE STATEMENT"
  613. 23650 PRINT#1,P2$:CLOSE1:GOSUB23800:GOSUB6400:RUN
  614. 23700 REM  PRINT STATEMENT ENTRIES ROUTINE
  615. 23702 PRINT#1,P5$"05"
  616. 23703 PRINT#1,P1$T$"20LIST OF STATEMENT ENTRIES"
  617. 23704 PRINT#1,P2$
  618. 23705 PRINT#1,"ENTRY#";T$"10CHECK#";T$"21AMOUNT";T$"30MARKER"
  619. 23710 PRINT#1,L$:FORL=1TOHR:PRINT#1,L;T$"10";RC$(L);T$"20";RA(L);
  620. 23720 PRINT#1,T$"30";SM$(L):NEXT:PRINT#1,L$:RETURN
  621. 23800 REM  UPDATE ACTIVE MONTHS LIST
  622. 23810 J=1
  623. 23820 FORQ=1TONM
  624. 23830 IF XX$(Q)="-"THEN TM$(J)=NM$(Q):J=J+1
  625. 23840 NEXT:NM=J-1
  626. 23850 FOR Q=1TONM:NM$(Q)=TM$(Q):NEXT:RETURN
  627. 23900 REM  ADD NEW MONTH TO ACTIVE LIST
  628. 23902 REM  CHECK FOR OLD INACTIVE MONTH
  629. 23904 I=1
  630. 23905 IFMK$(I)="-"THEN23910:REM ACTIVE MONTH
  631. 23906 IFI=HE THEN RETURN:REM  OLD INACTIVE MONTH (DON'T ADD TO LIST)
  632. 23908 I=I+1:GOTO23905
  633. 23910 I=1
  634. 23915 IFNM$(I)=MY$THENRETURN
  635. 23920 I=I+1:IFI>NM THENNM=NM+1:NM$(NM)=MY$:RETURN
  636. 23930 GOTO23915
  637. 23950 REM  PRINT REC ROUTINE
  638. 23960 PRINT#1,J;T$"10";CH$(J);T$"20";PA$(J);
  639. 23965 PRINT#1,T$"50";AM(J):RETURN
  640. 24000 REM
  641. 24010 REM  QUARTERLY AND ANNUAL SUMMARIES
  642. 24020 DATA 01,02,03,04,05,06,07,08,09,10,11,12:OPEN1,4:PRINT#1,ES$;CHR$(53);
  643. 24025 DEFFNPC(X)=INT((X/AM(31)*100)*10+.5)/10
  644. 24030 FORI=1TO12:READMN$(I):NEXT:SM(1)=1:SM(2)=4:SM(3)=7:SM(4)=12
  645. 24040 INPUT"[147]ENTER THE YEAR (YY)";YE$:IFYE$<"85"THEN24040
  646. 24050 INPUT"ENTER THE QUARTER (1-4)";Q:IFQ<1ORQ>4THEN24050
  647. 24060 IFQ=1THENB1=1:E1=3:GOTO24100
  648. 24070 IFQ=2THENB1=4:E1=6:GOTO24100
  649. 24080 IFQ=3THENB1=7:E1=9:GOTO24100
  650. 24090 IFQ=4THENB1=10:E1=12:GOTO24100
  651. 24100 FORZ=B1TOE1:GOSUB24300:NEXT:IFQ=5THEN24120
  652. 24110 PRINT#1,P1$;OW$:PRINT#1:PRINT#1,"QUARTER #";Q;"  19";YE$:PRINT#1,P2$
  653. 24120 PRINT#1,"BEGINNING BALANCE  =";B2
  654. 24130 PRINT#1,"ENDING BALANCE     =";BA
  655. 24140 PRINT#1,"TOTAL CHECKS       =";AM(31)
  656. 24150 PRINT#1,"TOTAL DEPOSITS     =";AM(0):PRINT#1
  657. 24155 PRINT#1,P1$;"CATEGORY";T$"35";"AMOUNT";T$"50";"% OF TOTAL";P2$:PRINT#1,L$
  658. 24156 FORI=1TOHC:PRINT#1,CA$(I);T$"35";AM(I);T$"50";FNPC(AM(I)):NEXT
  659. 24160 IFQ=4THENQ=5:B1=1:B2=12:GOSUB19000:GOTO24170
  660. 24165 FORI=1TO15:CLOSEI:NEXT:RUN
  661. 24170 PRINT#1,CHR$(12);P1$;OW$:PRINT#1
  662. 24180 PRINT#1,"ANNUAL SUMMARY   19";YE$:PRINT#1,P2$:GOTO24100
  663. 24300 REM READ TOTALS FROM DATA FILE
  664. 24310 OPEN15,8,15:OPEN8,8,8,"MAIN DATA"+MN$(Z)+YE$:GOSUB7000
  665. 24320 INPUT#8,BA:INPUT#8,BB:IFZ=B1THENB2=BB
  666. 24330 FORI=0TO31:INPUT#8,TT(I):AM(I)=AM(I)+TT(I):NEXT:CLOSE8:CLOSE15:RETURN
  667. 39000 END
  668. 40000 SAVE"@0:CB/V1.17",8:VERIFY"CB/V1.17",8
  669.